/**
 * 认证工具类
 */

const TOKEN_KEY = 'lib_sys_token'
const USER_KEY = 'lib_sys_user'

/**
 * 获取token
 */
export function getToken() {
  return localStorage.getItem(TOKEN_KEY)
}

/**
 * 设置token
 */
export function setToken(token) {
  localStorage.setItem(TOKEN_KEY, token)
}

/**
 * 移除token
 */
export function removeToken() {
  localStorage.removeItem(TOKEN_KEY)
}

/**
 * 获取用户信息
 */
export function getUser() {
  const userStr = localStorage.getItem(USER_KEY)
  return userStr ? JSON.parse(userStr) : null
}

/**
 * 设置用户信息
 */
export function setUser(user) {
  localStorage.setItem(USER_KEY, JSON.stringify(user))
}

/**
 * 移除用户信息
 */
export function removeUser() {
  localStorage.removeItem(USER_KEY)
}

/**
 * 清除所有认证信息
 */
export function clearAuth() {
  removeToken()
  removeUser()
}

/**
 * 检查是否已登录
 */
export function isLoggedIn() {
  return !!getToken() && !!getUser()
}

/**
 * 获取用户角色
 */
export function getUserRole() {
  const user = getUser()
  return user ? user.role : null
}

/**
 * 检查用户权限
 * @param {number} requiredRole 需要的角色等级
 */
export function hasPermission(requiredRole) {
  const userRole = getUserRole()
  return userRole !== null && userRole >= requiredRole
}

/**
 * 角色常量
 */
export const ROLES = {
  ADMIN: 1,      // 管理员
  USER: 0        // 普通用户
}
